#ifndef __MY_FORMAT_H
#define __MY_FORMAT_H


#include <pthread.h>
#include <sys/types.h>

#ifdef cplusplus
extern "C"
{
#endif  //!cplusplus


#pragma pack(4)     
//为了避免不同机器编译后的结构体大小不同，所以把大的类型放前面

/**
 * 协议总述：使用最常见的TLV格式数据
 *    T:2个字节，L:4字节，V:根据L而定
 * 类型字段 T:
 *    见MessageType
 * 注意： 
 *    数据的传输不包含'\0'
 */
#pragma pack(4)
struct MsgLen{
    unsigned int m_msgTypeLen;
    unsigned int m_msgValueLen;
    unsigned int m_msgLen;          //总长度
};
extern struct MsgLen Msg;
enum MessageType{
    e_msgRegist = 1,        //注册
    e_msgLogin,             //登录
    e_msgDebug,             //调试
    e_msgWrongPasswd,       //密码错误
    e_msgTimestamp,         //时间戳
    e_msgBegTimestamp,      //请求时间戳
    e_msg
};//messageType;



void  head_package(char *send_cmd,unsigned short cmd_num,unsigned int packet_len);
void head_analyze(char *p,unsigned short *cmd_num,unsigned int *packet_len);


#ifdef cplusplus
}
#endif  //!cplusplus
#endif  //!__MY_FORMAT_H